GDK W32: No more child windows
authorРуслан Ижбулатов <lrn1986@gmail.com>
Tue, 28 May 2019 16:37:28 +0000 (16:37 +0000)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 28 May 2019 20:25:17 +0000 (20:25 +0000)
We don't have child windows (the window-inside-a-window kind of windows)
anymore. Remove all the code related to that.

gdk/win32/gdkgeometry-win32.c [deleted file]
gdk/win32/gdksurface-win32.c
gdk/win32/gdksurface-win32.h
gdk/win32/meson.build

diff --git a/gdk/win32/gdkgeometry-win32.c b/gdk/win32/gdkgeometry-win32.c
deleted file mode 100644 (file)
index e071689..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-/* GDK - The GIMP Drawing Kit
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- */
-
-/* gdkgeometry-win32.c: emulation of 32 bit coordinates within the
- * limits of Win32 GDI. The idea of big window emulation is more or less
- * a copy of the X11 version, and the equvalent of guffaw scrolling
- * is ScrollWindowEx(). While we determine the invalidated region
- * ourself during scrolling, we do not pass SW_INVALIDATE to
- * ScrollWindowEx() to avoid a unnecessary WM_PAINT.
- *
- * Bits are always scrolled correctly by ScrollWindowEx(), but
- * some big children may hit the coordinate boundary (i.e.
- * win32_x/win32_y < -16383) after scrolling. They needed to be moved
- * back to the real position determined by gdk_surface_compute_position().
- * This is handled in gdk_surface_postmove().
- *
- * The X11 version by Owen Taylor <otaylor@redhat.com>
- * Copyright Red Hat, Inc. 2000
- * Win32 hack by Tor Lillqvist <tml@iki.fi>
- * and Hans Breuer <hans@breuer.org>
- * Modified by Ivan, Wong Yat Cheung <email@ivanwong.info>
- * so that big window emulation finally works.
- */
-
-#include "config.h"
-#include "gdk.h"               /* For gdk_rectangle_intersect */
-#include "gdkinternals.h"
-#include "gdkprivate-win32.h"
-#include "gdkwin32.h"
-
-#define SIZE_LIMIT 32767
-
-typedef struct _GdkSurfaceParentPos GdkSurfaceParentPos;
-
-static void
-tmp_unset_bg (GdkSurface *window)
-{
-  GdkWin32Surface *impl;
-
-  impl = GDK_WIN32_SURFACE (window);
-
-  impl->no_bg = TRUE;
-}
-
-static void
-tmp_reset_bg (GdkSurface *window)
-{
-  GdkWin32Surface *impl;
-
-  impl = GDK_WIN32_SURFACE (window);
-
-  impl->no_bg = FALSE;
-}
-
-void
-_gdk_surface_move_resize_child (GdkSurface *window,
-                              gint       x,
-                              gint       y,
-                              gint       width,
-                              gint       height)
-{
-  GdkWin32Surface *impl;
-
-  g_return_if_fail (window != NULL);
-  g_return_if_fail (GDK_IS_SURFACE (window));
-
-  impl = GDK_WIN32_SURFACE (window);
-  GDK_NOTE (MISC, g_print ("_gdk_surface_move_resize_child: %s@%+d%+d %dx%d@%+d%+d\n",
-                          _gdk_win32_surface_description (window),
-                          window->x, window->y, width, height, x, y));
-
-  if (width * impl->surface_scale > 65535 || height * impl->surface_scale > 65535)
-    {
-      g_warning ("Native children wider or taller than 65535 pixels are not supported.");
-
-      if (width * impl->surface_scale > 65535)
-        width = 65535 / impl->surface_scale;
-      if (height * impl->surface_scale > 65535)
-        height = 65535 /impl->surface_scale;
-    }
-
-  window->x = x;
-  window->y = y;
-  window->width = width;
-  window->height = height;
-  impl->unscaled_width = width * impl->surface_scale;
-  impl->unscaled_height = height * impl->surface_scale;
-
-  _gdk_win32_surface_tmp_unset_parent_bg (window);
-  _gdk_win32_surface_tmp_unset_bg (window, TRUE);
-
-  GDK_NOTE (MISC, g_print ("... SetWindowPos(%p,NULL,%d,%d,%d,%d,"
-                          "NOACTIVATE|NOZORDER)\n",
-                          GDK_SURFACE_HWND (window),
-                          window->x * impl->surface_scale,
-                          window->y * impl->surface_scale,
-                          impl->unscaled_width,
-                          impl->unscaled_height));
-
-  API_CALL (SetWindowPos, (GDK_SURFACE_HWND (window), NULL,
-                          window->x * impl->surface_scale,
-                          window->y * impl->surface_scale,
-                          impl->unscaled_width,
-                          impl->unscaled_height,
-                          SWP_NOACTIVATE | SWP_NOZORDER));
-
-  _gdk_win32_surface_tmp_reset_bg (window, TRUE);
-}
-
-void
-_gdk_win32_surface_tmp_unset_bg (GdkSurface *window,
-                               gboolean recurse)
-{
-  g_return_if_fail (GDK_IS_SURFACE (window));
-
-  if (window->destroyed || !GDK_SURFACE_IS_MAPPED (window))
-    return;
-
-  tmp_unset_bg (window);
-}
-
-void
-_gdk_win32_surface_tmp_unset_parent_bg (GdkSurface *window)
-{
-  if (window->parent == NULL)
-    return;
-
-  _gdk_win32_surface_tmp_unset_bg (window->parent, FALSE);
-}
-
-void
-_gdk_win32_surface_tmp_reset_bg (GdkSurface *window,
-                               gboolean   recurse)
-{
-  g_return_if_fail (GDK_IS_SURFACE (window));
-
-  if (window->destroyed || !GDK_SURFACE_IS_MAPPED (window))
-    return;
-
-  tmp_reset_bg (window);
-}
index 5ccc7525e98766e77b26b32fa1ba5be75f24797d..07fe55b35b99cf080c6049ebdb92b39461884c4c 100644 (file)
@@ -268,7 +268,7 @@ _gdk_win32_surface_enable_transparency (GdkSurface *window)
   DWM_BLURBEHIND blur_behind;
   HRGN empty_region;
   HRESULT call_result;
-  HWND parent, thiswindow;
+  HWND thiswindow;
 
   if (window == NULL || GDK_SURFACE_HWND (window) == NULL)
     return FALSE;
@@ -284,12 +284,6 @@ _gdk_win32_surface_enable_transparency (GdkSurface *window)
 
   thiswindow = GDK_SURFACE_HWND (window);
 
-  /* Blurbehind only works on toplevel windows */
-  parent = GetAncestor (thiswindow, GA_PARENT);
-  if (!(GetWindowLong (thiswindow, GWL_STYLE) & WS_POPUP) &&
-      (parent == NULL || parent != GetDesktopWindow ()))
-    return FALSE;
-
   empty_region = CreateRectRgn (0, 0, -1, -1);
 
   if (empty_region == NULL)
@@ -1127,11 +1121,6 @@ gdk_win32_surface_move (GdkSurface *window,
   if (window->state & GDK_SURFACE_STATE_FULLSCREEN)
     return;
 
-  if (GetAncestor (GDK_SURFACE_HWND (window), GA_PARENT) != GetDesktopWindow ())
-    {
-      _gdk_surface_move_resize_child (window, x, y, window->width, window->height);
-    }
-  else
     {
       RECT outer_rect;
       GdkWin32Surface *impl = GDK_WIN32_SURFACE (window);
@@ -1175,11 +1164,6 @@ gdk_win32_surface_resize (GdkSurface *window,
   if (window->state & GDK_SURFACE_STATE_FULLSCREEN)
     return;
 
-  if (GetAncestor (GDK_SURFACE_HWND (window), GA_PARENT) != GetDesktopWindow ())
-    {
-      _gdk_surface_move_resize_child (window, window->x, window->y, width, height);
-    }
-  else
     {
       RECT outer_rect;
 
@@ -1225,11 +1209,6 @@ gdk_win32_surface_move_resize_internal (GdkSurface *window,
                            GDK_SURFACE_HWND (window),
                            width, height, x, y));
 
-  if (GetAncestor (GDK_SURFACE_HWND (window), GA_PARENT) != GetDesktopWindow ())
-    {
-      _gdk_surface_move_resize_child (window, x, y, width, height);
-    }
-  else
     {
       RECT outer_rect;
       GdkWin32Surface *impl = GDK_WIN32_SURFACE (window);
index cbe0472fb598855e84b60e42ce7702462ab94924..1d6c4b36268f85853934ba4b49fbad7d41d566b2 100644 (file)
@@ -261,7 +261,6 @@ struct _GdkWin32Surface
    * We don't actually set margins to 0, we just set this bit.
    */
   guint zero_margins : 1;
-  guint no_bg : 1;
   guint inhibit_configure : 1;
 
   /* Set to TRUE if window is using true layered mode adjustments
@@ -349,14 +348,6 @@ struct _GdkWin32SurfaceClass
 
 GType _gdk_win32_surface_get_type (void);
 
-void  _gdk_win32_surface_tmp_unset_bg  (GdkSurface *window,
-                                        gboolean   recurse);
-void  _gdk_win32_surface_tmp_reset_bg  (GdkSurface *window,
-                                        gboolean   recurse);
-
-void  _gdk_win32_surface_tmp_unset_parent_bg (GdkSurface *window);
-void  _gdk_win32_surface_tmp_reset_parent_bg (GdkSurface *window);
-
 void  _gdk_win32_surface_update_style_bits   (GdkSurface *window);
 
 gint  _gdk_win32_surface_get_scale_factor    (GdkSurface *window);
index 11f8da78b203c5b0a27dadb2f00d52efebed96a4..9567c96609cfae939e68efc7d8c4a31f9aa221ff 100644 (file)
@@ -12,7 +12,6 @@ gdk_win32_sources = files([
   'gdkdrag-win32.c',
   'gdkdrop-win32.c',
   'gdkevents-win32.c',
-  'gdkgeometry-win32.c',
   'gdkglcontext-win32.c',
   'gdkglobals-win32.c',
   'gdkhdataoutputstream-win32.c',